Förstår att en sådan här tråd kan dö ut ganska snabbt om den inte fylls på med innehåll. Tyvärr har jag vart upptagen på med annat, och inte hunnit skriva så mycket mer på guiden, men för att hålla tråden levande lägger jag ut kapitlet om brandväggar redan nu så får ni som har lust och kunskap gärna faktagranska det, och komma med inspel om vad ni tycker. I denna revision kommer jag använda Arch Linux som grund, men att översätta så guiden även fungerar för andra distributioner ligger på att-göra-listan och för just detta kapitel är det inte särskilt komplicerat arbete.
Introduktion till brandväggar
Det finns i princip två typer av brandväggar. Nätverksbaserade brandväggar som ska skydda hela ditt nätverk, och värdbaserade vars uppgift enbart enbart är att skydda datorn den är installerad på. En router med inbyggd brandvägg är att betrakta som en nätversbaserad brandvägg medan en brandvägg som är installerad på en dator är en värdbaserad brandvägg. Det vanligaste idag är att använda sig av båda typer av brandväggar samtidigt.
Nätverksbaserad brandvägg
Det primära syftet med denna brandvägg är att hindra oönskad trafik från internet att ta sig in i ditt privata hemmanätverk genom regler du själv bestämmer. Dessa regler brukar kallas för Access Control List (ACL). I korthet och något förenklat kan du som administrerar brandväggen skapa regler som exempelvis ser ut enligt följande:
+---------------+----------------+----------+---------------+------+
|Permission | IP Adress | Protocol | Destination | Port |
+---------------+----------------+----------+---------------+------+
| ALLOW | 194.213.118.43 | TCP | 192.168.0.100 | 80 |
| ALLOW | 194.213.118.43 | TCP | 192.168.0.100 | 443 |
+---------------+----------------+----------+---------------+------+
Dessa regler kommer tillåta trafik från en dator utanför ditt nätverk med IP-adress 194.213.118.43 att kommunicera med din dator på nätverket med interna IP-adressen 192.168.0.100, men enbart på port 80 och 443, vilka är standardportarna du kommer använda om du driver en egen webbserver hemma i vardagsrummet. Ovanstående regler baserade på IP-Adress, men du kan även bestämma regler för flertalet brandväggar utifrån domännamn, protokoll och portar mfl…
Värdbaserad brandvägg
En värdbaserad brandvägg är den du har installerat på datorn. Kör du Windows använder du sannolikt redan Windows Defender som följer med installationen. Kör du Linux är det inte säkert att du använder någon brandvägg alls beroende på vilken distro du installerat, men flertalet brukar ändå komma med nftables som förinstallerat.
Oavsett vilken värdbaserade brandvägg du använder är syftet att skydda datorn den är installerad på. Reglerna är i grunden de samma som för nätverksbaserade brandväggar och kan exempelvis se ut enligt följande:
+---------------+---------------+----------+---------------+------+
| Permission | IP Adress | Protocol | Destination | Port |
+---------------+---------------+----------+---------------+------+
| ALLOW | 192.168.0.110 | SSH | 192.168.0.100 | 22 |
+---------------+---------------+----------+---------------+------+
Denna regel kommer tillåta en dator i ditt hemmanätverk med IP-adressen 192.168.0.110 att ansluta till din dator med adress 192.168.0.100 med ssh. Det kan exempelvis vara praktiskt om du har en linuxserver stående i en garderob utan skärm att kunna administrera den utan att behöva fysisk tillgång till den.
Värdbaserad brandvägg – nftables och firewalld
Installera nftables – backend för firewalld
Kod:
sudo pacman -S nftables
Aktivera automatisk uppstart och starta nftables
Kod:
sudo systemctl enable nftables
sudo systemctl start nftables
Installera firewalld – frontend för nftables
Kod:
sudo pacman -S firewalld
Aktivera automatisk uppstart och starta firewalld
Kod:
sudo systemctl start firewalld
sudo systemctl enable firewalld
Sätt standard zonen till "drop" för att blockera all inkommande trafik
Kod:
sudo firewall-cmd --set-default-zone=drop
Lägg till den utgående trafiken som behövs för webbsurfning
Kod:
sudo firewall-cmd --zone=drop --add-rich-rule='rule family="ipv4" protocol="tcp" port protocol="tcp" port="53" accept' --permanent
sudo firewall-cmd --zone=drop --add-rich-rule='rule family="ipv4" protocol="udp" port protocol="udp" port="53" accept' --permanent
sudo firewall-cmd --zone=drop --add-rich-rule='rule family="ipv4" protocol="tcp" port protocol="tcp" port="80" accept' --permanent
sudo firewall-cmd --zone=drop --add-rich-rule='rule family="ipv4" protocol="tcp" port protocol="tcp" port="443" accept' --permanent
sudo firewall-cmd --reload
Tillåta trafik och kommunikation inom ditt nätverk
Här finns det ett par olika alternativ. Alternativ ett, som är smidigt men som förutsätter att du litar på alla enheter i ditt lokala nätverk, alternativ två som kräver att du väljer vilka enheter du ska lita på, alternativ tre som är det säkraste alternativet av dessa är att sätta upp regler där du endast tillåter specifika tjänster från specifika enheter inom nätverket. Ett fjärde alternativ är så klart att inte tillåta någon trafik alls från dina övriga datorer och enheter på nätverket till din dator. Det är uppenbart det absolut säkraste, men rekommenderas enbart om du vet med dig att du inte har något behov av att tillåta trafik från andra datorer i ditt hem. Väljer du att inte tillåta någon trafik alls kan du hoppa över nedanstående alternativ och gå direkt till att starta om din brandvägg.
Nedanstående alternativ förutsätter att ditt subnät är 192.168.0.0/24, dvs att din router finns på 192.168.0.1 och delar ut IP adresser i scoopet 192.168.0.1-192.168.0.255. Om din router exempelvis finns på 192.168.1.1 får du ändra subnät i nedanstående kommando till 192.168.1.0/24.
Alternativ 1 – Tillåta all kommunikation från alla enheter inom det lokala nätverket
Kod:
sudo firewall-cmd --zone=drop --add-rich-rule='rule family="ipv4" source address="192.168.0.0/24" accept' --permanent
Alternativ 2 – Tillåta all kommunikation från en specifik enhet, i detta fallet 192.168.0.100
Kod:
sudo firewall-cmd --zone=drop --add-rich-rule='rule family="ipv4" source address="192.168.0.100" accept' --permanent
Alternativ 3 – Tillåt specifik tjänst från specifik enhet, i detta fall ssh från 192.168.0.100
Kod:
sudo firewall-cmd --zone=drop --add-rich-rule='rule family="ipv4" source address="192.168.0.100" service name="ssh" accept' --permanent
Viktiga kommandon för att administrera firewalld
Kontrollera status på firewalld
Kod:
sudo systemctl status firewalld
Starta firewalld
Kod:
sudo systemctl start firewalld
Stoppa firewalld
Kod:
sudo systemctl stop firewalld
Aktivera firewalld vid systemstart
Kod:
sudo systemctl enable firewalld
Läsa loggfilen med journalctl
Kod:
sudo journalctl -u firewalld
Övervaka firewalld i realtid
Kod:
sudo journalctl -f -u firewalld
Öppna en port (till exempel port 80 för HTTP)
Kod:
sudo firewall-cmd --add-port=80/tcp --permanent
Stänga en port
Kod:
sudo firewall-cmd --remove-port=80/tcp --permanent
Ladda om firewalld för att tillämpa ändringar
Kod:
sudo firewall-cmd --reload
Visa aktiv zon
Kod:
sudo firewall-cmd --get-active-zones
Byta till en annan zon (till exempel "home")
Kod:
sudo firewall-cmd --set-default-zone=home
Visa regler och öppna portar för en specifik zon (till exempel "public")
Kod:
sudo firewall-cmd --zone=public --list-all
Visa regler och öppna portar för den aktuella zonen
Kod:
sudo firewall-cmd --list-all
Lägga till en tjänst (till exempel SSH) permanent till en zon
Kod:
sudo firewall-cmd --zone=public --add-service=ssh --permanent
Ta bort en tjänst (till exempel SSH) permanent till en zon
Kod:
sudo firewall-cmd --zone=public --remove-service=ssh --permanent
Aktivera logging för nekade paket
Kod:
sudo firewall-cmd --set-log-denied=all
Inaktivera logging för nekade paket
Kod:
sudo firewall-cmd –set-log-denied=off
Feedback